package xx.services.demo.inter;

import javax.ws.rs.FormParam;
import javax.ws.rs.PathParam;

/**
 * DEMO Tab模板服务接口
 * 
 * @Path (Constants.RESTFUL_ROOT_PATH + "/demo/tab")
 * 
 * @author chenxiang 2010-12-20
 */
public interface ITabInterface
{
    /**
     * 新增一个标签demo。<br>
     * 
     * @POST
     * 
     * @param title-@FormParam("title")
     *            Tab标题
     * @param container-@FormParam("container")
     *            Tab容器，一般是一个div，如：<div class="container">${container}</div>
     * @param demo-@FormParam("demo")
     *            dome样例
     * @param shape-@FormParam("shape")
     *            样式图片
     * @param description-@FormParam("description")
     *            描述
     * @return 新Tab实体
     * @author chenxiang
     */
    public String add(@FormParam("title")
    String title, @FormParam("container")
    String container, @FormParam("demo")
    String demo, @FormParam("shape")
    String shape, @FormParam("description")
    String description);

    /**
     * 删除Tab。<br>
     * 
     * @DELETE
     * @Path ("/{tab_id}")
     * 
     * @param tabId-@PathParam("tab_id")
     *            Tab ID，多个ID用“_”隔开
     * @return true-删除成功，string-其他删除失败（string就是失败原因）
     * @author chenxiang
     */
    public String delete(@PathParam("tab_id")
    String tabId);

    /**
     * 获取一个标签demo。<br>
     * 
     * @GET
     * @Path ("/{tab_id}")
     * 
     * @param tabId-@PathParam("tab_id")
     *            Tab ID
     * @return Tab实体
     * @author chenxiang
     */
    public String get(@PathParam("tab_id")
    long tabId);

    /**
     * 获取标签列表。<br>
     * 
     * @GET
     * 
     * @return Tab实体列表
     * @author chenxiang
     */
    public String gets();

    /**
     * 修改一个标签demo。<br>
     * 
     * @PUT
     * @Path ("/{tab_id}")
     * 
     * @param tabId-@PathParam("tab_id")
     *            Tab ID
     * @param title-@FormParam("title")
     *            Tab标题
     * @param container-@FormParam("container")
     *            Tab容器，一般是一个div，如：<div class="container">${container}</div>
     * @param demo-@FormParam("demo")
     *            dome样例
     * @param shape-@FormParam("shape")
     *            样式图片
     * @param description-@FormParam("description")
     *            描述
     * @return 新Tab实体
     * @author chenxiang
     */
    public String update(@PathParam("tab_id")
    long tabId, @FormParam("title")
    String title, @FormParam("container")
    String container, @FormParam("demo")
    String demo, @FormParam("shape")
    String shape, @FormParam("description")
    String description);

    /**
     * 新增一个TabItem tab_item demo。<br>
     * 
     * @POST
     * @Path ("/{tab_id}/item")
     * 
     * @param tabId-@PathParam("tab_id")
     *            Tab ID
     * @param title-@FormParam("title")
     *            item标题
     * @param container-@FormParam("container")
     *            item容器，一般是一个div，如：<div class="container">${container}</div>
     * @param demo-@FormParam("demo")
     *            Item实体
     * @param templet-@FormParam("templet")
     *            Item模板
     * @return 新TabItem实体
     * @author chenxiang
     */

    public String addItem(@PathParam("tab_id")
    long tabId, @FormParam("title")
    String title, @FormParam("container")
    String container, @FormParam("demo")
    String demo, @FormParam("templet")
    String templet);

    /**
     * 描述：获取标签列tab_item列表。<br>
     * 
     * @GET
     * @Path ("/{tab_id}/item")
     * 
     * @param tabId-@PathParam("tab_id")
     *            Tab ID
     * @return item列表
     * @author chenxiang
     */
    public String getItems(@PathParam("tab_id")
    long tabId);
}
